<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
class LoginController extends Controller
{
    public function index(){

        return view('admin.index.login');
    }

    /**
     * 用户登录
     * @param Request $request
     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
     */
    public function login(Request $request){

        $params = $request->validate([
            'username' => 'required',
            'password' => 'required',
        ]);
       // dd($params);
       $bool=auth()->attempt($params);
       if($bool){
           //判断是否为超级管理员
            if (auth()->user()->username == config('rbac.super')){
                //如果是超级管理 使用session 记录 当前用户     ????
                session(['admin.auths'=>true]);
            }else{
                //获取当前用户
                 $user=  auth()->user();
                 //调user 模型下的 role 获取当前用户对应的角色
                 $role=$user->role;

                 //获取角色对应的权限
                 //pulck 如果只有一个参数 是值，如果有两个参数，第一个是key
                 $nodes= $role->nodes->pluck('route_name','id')->toArray();

                //存储当前用户权限    //session key名后自带session_id  所以是唯一的
                // cacha  和 redis  都是共有的
                session(['admin.auths'=>$nodes]);
            }

           //跳转到后台
           return redirect(route('admin.index'));
       }else{
           return redirect(route('admin.login'))->withErrors("账号或密码错误");
       }


    }

    public function logout(){
        // auth 退出
        auth()->logout();

        return  redirect(route('admin.login'))->with('success',"请重新登录");

    }
}
